perm filename MAPS[E81,JMC]6 blob sn#619401 filedate 1981-10-08 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	@make(article)
C00026 ENDMK
C⊗;
@make(article)
@sTyle(linewidth 6 ifches)
@modify(hd2,us@∀AkpR4∃↓gieYJQS9IK]h`XAgACGS]≤@b\j0Agae∃CH@`8jR
∃↓gisY∀Qi←a5CeOS8@bAS9GPHA	←ii←5[CeO%\@bA%]GPX↓YKMi5CeOS8@b\dTAS]G!KfR~)↓gisαc∃#'v#↔;Qβ↓$4*πβπ∨↔F+π∪'v9↓!$hRβOSL¬F*G⎇≤F␈>≤>FN}df␈⊗<U⊂hPQ!PTε,\vNr
V∞&≥lrHh(9td⎇)→d:∧X~¬~∧→hB¬$λT∧\⎇x→E≤\∀λD|≥J)∀t(Q(ε.vE
ε.∞M≥f:HQ!PTε<]g&/%	&}Fd	V≤≡≡.FGJ⊃Q hT-F∞v>>ε∞≡Uα"εf≥lW~HQ!PT↑}|⊗g≡=∀αFc⊗w∩Jε]nVv≡≤≡F."∞Mε*εM|7'⊗≥lRε/∞∞&/∨<\Bε↔∀
FF*iw⊗o]H⊂hPQ(ε⊗.⎇≥bF6N↑6Ff\jBHh(λ"C
d∧ππ⊗|}&∞jπPεf@yz0d¬h_p↔[:97f
FE  %nd(fLushlEfp)

	The formulaisn't precise, and It won't be precise until
someone proposes a precisa and generally acCepted notion oF how
control iq to be added to anexpression kf the lOdπSFA=LABAAe←Oe¬Z\4Ts↔[↔↔##↔3/≠M1β&C∃β'&+¬β'~βπSS⊗∂S'6)1βπv!α%β⊗+3'↔4)β'Qε≠π9β⊗)β7π&)βS=¬;?KhS≠?Iπ≠?7∃∧K;C↔⊗+OS'v9β∂3∂≠Mβ?2βCK??∪π7Mr↓α'QεKMβπv3?∨␈+MβSzβ7eβ≤{7Cπ⊗KO?8hS?	β/β'OS.k?3??Iβπ;"β#↔W⊗KOS'∨→β?I∧≠#?7≡[e∨M∧≠?7C-#↔;∂*βπ;⊃πβ↔K≠␈∪7π;≤)84(hP&C↔⊗+'K¬ε;⊃αε{KS=αAEeaαIβ∨'6)β¬βf{∨'
πβK?∨⊗5β≠␈⊃β∂?f{K';8βC3πvH4+nCMβ>KS!β6{WIβ≤{3?K~βπ;⊃ε#'O∂/≠Mβ#␈9↓O,c↔∂SO3∀4+⊗∂/S⊗∂/'v9	β∂∞qβK↔'+∂¬β&C∃βO.K∂!εK;[?g3↔⊃βNqβ∂?f{K';:β¬β7∂↓β≠K}iβS#∂ 4+∪}s∃βJβ¬βO'∪π'∨G#≠?K>K⊃α¬∩>2>:β↔c↔∨+S'?rβ?→β&C∃βO∞k∀4+π∪?∨K∞i84(hP&S#*β∪'O∨+OO'}qβe¬β↔K↔O∪¬βπv!αC?↔#=βS⊗+πSMε≠?3?⊗K;≥βnCMβπ+K↔3JβπL4V9β↔F7C3*β?→βf{∨'
πβK?∨⊗77'v91βπv!βS#*β'7C⊗{[↔7.sSMβ&C↔eβ&KO∂W∨→βπCεcd4+&yβπ3bβ3?∨N→βCK};Kπ5π≠gOS.kM9↓¬;∃βOF31β≡{;O'&+IβS>yβ7π&C↔7π&K∂π1εK∪↔π_h+π␈+Qβ7∂↓β∂?f{K';:βS#π"β∨=β⊗∂-β&yα/↔oβ∃↓!A]e%bβS#∃πβπC↔∩β∂?;&';'v9βS#(h+?KN;';πbβ≠π3≡)βCK}{→β?2βS#∃ε3?WIε≠?3?∩βS#↔␈∪↔59αα←#'f)α/↔oβ∃∨MπβK??0h+←π~β≠π3≡)1βSF)β'∪.Mβπ⊗)β∨?}!βπ;"β←↔K*βWO↔"β'9β∞c7?O"βπ31π≠WO/W↔;"β←?KXh+';≡cW∪'v9βS#*βK↔∂.sQβO.≠∂↔O≡3W1βπ∪??→ph(4(M##∃β∂+↔OSN{9β'~β←#↔&C↔Iβ∞qβπ3>{K'SFh4+'w3?3[Ns≥βSF+O∃βN#↔πMε≠π9β⊗)βK↔>K∪↔"βπMβ
β≠?Kjβ?→β≡{;SK}aβπ∪V{';↔"βS<4W##∃β⊗O'
εc?∨'~βCK??∪π5β␈⊃β←#/##↔Iπ##↔eεs↔∂↔∨≠πK'gIβ';6{3[∃ε	β;↔:βCK??∪π58hR'→β&C↔eβ∂∪∃βSzβ∃β⊗+∨πK&+⊃βπ~β∂?;'∪?1β∨#KW∂'+K↔Mbβ'QβO→β;?"βg↔Qε≠3↔π∩β#?\hSS#↔JβπK∃ε∪↔OQε+cCK/≠O↔⊃r↓α?→ε≠?WK≡)1β'"β'Mβv{Qβ#∂∪⊃βSzβ←K'&)β¬β≡{7C3/#↔3dhS;↔]πβK?∨⊗5β'rαBJ>dz≥β?∩βπ;eε{S#↔∩β3π;?+π∨∃ε+cCK/≠O';:βS#∃ε3∨?⊗KS#7~aβW h+C↔⊗CπCMπ##↔eε≠π9β∞cO=β⊗)βK↔>K∪↔"βπMβ≡{;SK}aβπS&∂#↔"βS=β&C∃αC/∪↔'K
jC?K&yβ3?>K
84Ph*β.;'9#6cWO#f+≠Q$hRα	!∩q↓αSF)αC↔⊗+'K¬mβ?KSzβ3?∨N→βCK};Kπ5Hh*β↔v!#≠3/≠#3↔7!$4(hP&S#/∪∃βπ⊗)βS←zβCπK'→9↓α&C∃β≠O∪OQβ/CCK↔∨≠↔Mβ&CπQβ&C∃βπ&Sπ∂↔w 4+∂␈+;SKN+Mβ7/≠Qβ#∂3∃β∪N3≠↔K.sQβ∂}c?KMε∪eβ3O≠S';:βS#∃πβπ'K~β?→β≡{3?K~βS#π h+7πJβ∃β∞#+π∂.sQ9↓¬;∃β#∂3∀4(hRβ↔>K9#∪O≠C3πJcWO∃∧I$4+
q↓ααvs↔cQGK↔33␈933.)%84Tαs;↔G!#g↔fc?]3⊗+⊃%8hRαs;/CQ#g.c3?]f;K↔↔rI84*¬c;↔c"C3W*cg↔3f{]%8hRαs↔&→9β≠␈⊃βπ3bβCπ'↔→β?→ε#'OSNs∂Qβ≡{3?K~p4*β.s⊃#∪O≠C3πJH4)hQ↓↓↓JS#∃π∪↔7πNs';≥¬αJ>2|9βOS∂#↔7↔w!β'Mε#'OSNs∂Qβ6{Iβ↔∞≠!β7∂↓9↓α6{IβSF(4+7∂↓β?→∧3'∨W⊗)↓E1π;#'∂BβS#↔JβWO∃εMβπrβ↔cπoβ3∃0hRβ↔>K9#≠N;WK∃Hh*βf;/Oε∂∃!Bβ3';/→$4(hRβ∂↔w#↔I"6K∨WK*↓E$4Tβ↔;⊃F3'∨W⊗)$4+O!β'LhRβ↔>K9#∪O≠C3πJbWO∃∧I$4+∩q↓ααv;?π1E⊃E2I∩bIM2∪!2IUe⊃Y&αRA]';/CQ"I
bII%fs↔cQE⊃E2I~I3;↔G!"IEe⊃U%0hRαs;/CQ"I
bIY%fs↔cQE⊃I2I~I3;↔G!"IIe⊃Q3;/CQ"I∩bIU%fs↔cQE⊃I2I2I04*¬c;↔c"BIM2∪!%3;/CQ"I≥⊃Y%3v+cQ"∪)2IYJp4*β.s⊃#∪O≠C3πJH4(4W;#↔K*β↔π∂Bβ3'S/∪π1β/CCK↔∨≠↔Mβ&C∃β≠∞≠QβSFQβ¬πβπKSN≠W3π∩βCπ'∩β?→β∞#+π∂.sP4+⊗+∨'?w→β7W∨!β∃ε≠?7C∂#'3Jβ∂?3␈∪↔⊃8hP4(&ε+K↔'⊗	βπ;"αC?K&yβ∨'6)β¬β'∪π∂∃ε{→βSF)β↔c.≠WS'}qβ?→π##∃βπ∪?∨K∞iβdhSOSπv#πK⊃ε#↔CSBβ≠'K∨!αBJ|b>≥9ααS#↔JβC?'w!β?W"βS#π"β←#↔rβπ9β∂#S↔7π!βS<hSOπSO≠≠eβ
β3'S/∪π1β6'3Mbβ↔∂∂+O∃β&C∃βS>yβπ∪V∂↔;"βK↔∨N{;Mβn+;S'}s↔⊃βF[∀4V∪↔↔9εOO'>s↔⊃β&C∃βO∞k∃β∂}c?I1π≠Sπ;&K⊃α¬∩>2>:β←'3bβSπ/*βπ∂Xh+S#*β7?O"βK↔∂.sQβπ∨≠'∨;n+;Qβ}1β¬β≡{3?Iε+[↔9εK→βSF)βK↔>K?9βn{OQβ⊗+∂↔;&cd4+≡{3?K.!β←π~β;↔'&C↔Iβ}1βS#␈≠∃β'w3?3[.!β'9π##∃βNs∂?7εS'Nc'Ser↓αS#.KH4+NsS↔3fK∨↔;"βπ∂←#Kπ∂↑K;≥β>K31β≡Cπ;∨*βS#∃ε≠?3?∩β?→β}s∃β?2βS#∃π∪↔∨'}sL4+>K[';:βS#∃εK;∂?oβπS'⊗K3'SJp4(4PJπ9β␈+SO'&+IβSzβ3?∨N→βCK};Kπ7nK;≥βneβK.∂Qβ.sOg7εS#↔&K∂π3gIβπ; h+∂?nk↔;Qπ##πQπ##'MεKMβ+/≠Qβ?v)β7?⊗)β↔c∞kC3∃ε{→β¬εc?∨'~βCK??∪π77Ns≥βOO≠S↔5`h+←'&Aβ'S~βOSπv#πK⊃π;πeβ}1β∪?Ns≥βO.K∂#/→1βS⊗KCC'v9β?[/⊃β'S~β?←9ε3↔↔Qph*#?>+[↔Ibβ←∃β≡C?W3"βπ3OzβK↔∂∞c1βSFQβ⊗K↔→β∞s⊃β↔∂≠eβO&S↔7.sQβ?2βS#∃¬αJ>2|84+C⊗{∨Kπjβ≠?Iπ##∃β≡{3?KNs≥βπv!β;?"β∨'[*βWAβ&C'Mβ6KKSW*β←'SF{WQβ
β≠'∨G!84(hP&;↔6+KS#.c↔OM`h)'w#↔33N;↔;Qε∪π∂/'∪π∂/Ns≥	β&{↔O9?!β7π↑)↓!EJβπ;⊃αAI%βNsS=β
β∨??"β∂?3␈∪';≤hSCK??∪π59αα';∪.+⊃β←*βO#πfaβπK?+∃βSFQβ'"β∪?↔≡q∨Qβ/3↔9β&yβ≠Wdaβ+W∨#'∂∃π#=βSF(4+3};'
β}1βS#*βCK??∪π59ααS=β≡+∃βSFKMβ←*β;↔↔"βS←=εK∪↔π~β?→α↑+7C∃ph(4*ε∪↔∨'rC≠3W≡C3↔≠"H4*α∩AM9↓¬∪↔∪W≡K;≥β&C∃β7∂↓$4*∧+;⊃#4cWO#f+≠Q$hP4(&↑+7C∃αC?Iβε+K#ππ→βO?n+?;∃π≠S'3bβ↔πKfK↔I$hS;?SN≠↔⊃β&CπQβ≡{W;S⊗K↔Mβ>KS!β&CK↔∃ε{Iβ≠-;↔Iβv+'∨#⊗{KMβ¬∪↔O↔w 4+≠zβCK?⊗c↔59αα;=βnSS↔∩β#?]π##∃β⊗+OQβ}1βS#*β7πAεKMβ∂}c?K↔"aβS#/∪∃β'~βπ3←∂KL4+
β∂?3⎇⊃βπ[∞K3πf)β≠?⊂βOW∂Bβ¬β∂␈+;SKJq↓αSFKEβO.;∨/>N2α↔,\G.≡≥lrπ&Tεn∂∧$ε↔HQ(L];⎇P∀[3P9zXt⊂1w]w:94YyP0w→⊂27t[3P7z\⊂:94Xv∩pw→⊗ry9≠y⊂1w[7y4w→P7w⊂≥42FE≤2r:aYr⊂6p\⊗⊂1g[34r2[:⊂:4_z⊂7w_pP:4→P92r≥qrr≠px⊂4\P1wv≠y2r⊗λ:42P_wv7i~w3FE_pw⊂1→P2|:→w22rλ:7P:~2P7vZz:2rλ1wzw≥94ryKεEεEαj42P~r2p@~yP2{→w⊂6w\2P87]ry3:[⊗⊂12XpzyrH2v4vZw0z4[3P1w]w:94YyP;t]4εE:~92rP≠y⊂32]ry⊂7→tst1≠y9P6X|P92[w{2P→w7zsZ⊂72tYt17y≤P397[P9wvYP7z4→yεE1[zw:9~ryP9[P:40]⊂:42↑P40{→P:49→rP7yλ32{r\⊂72tYt17y≤P0w2λ1pw⊂≥42vyYv;2yH12FE≤2vw{→r↔⊂⊂∃42y2Y7y2Vλ:42P≤2r:q]4ww⊂≤97qr\yP9t≠zv2⊂_2P1w[:4w:Yr⊂:w≥4v⊂0CE1wv\62z2[<P92Y:qrrλ6px⊂~yP7q≥0tw2Y⊂4w⊂≥t4qtλ0v6⊂_wzw:≤4ryP~0{2P_z⊂62Xyz⊂3≠zyεE≠2tst_7y9WβE⊂⊂*~2P6p\9P7sλ:42P≤z0z2\P7s⊂≥42P*K)W⊂0[2εE:~2P1w]w:94YyP7sλ"zy7\2V⊂ \tpV⊂⊂s94qXP0w2λ)wzz~⊂ vr\4qpP_v6⊂9→r:qrCE:7P≠:v6⊂≠px9P≥t2w⊂_wzw:≤4ryP≥tz4⊂≥492rH7y⊂#→{ry⊂≠2tst_7y9P_y2P9]qqry\t{2v≡FE2v~vtw0]2rεEβE∧f4Zp{tyYP:42H6px⊂≠s⊂#4Yzy2PP92r≥qryP≥7P:4→P2vx≥<P6p\↔⊂⊂εB*4:yH;rP6X|P92[w{2P_wzw:≤<P~≥tz4⊂≥;wP7→tst1≠untry 5 with three
neigbors.  This leaves all the remaining countries with three or fewer
neighbors, so the second cycle of reduction leaves the null map,
reduced map.  Therefore, when we colored in the reverse order
1, 2, 3, 6, 4, 5, each country is colored without changing the
color of any previously Colored country.

	If the programmer performs this reduction before he writes the
goal statement, he will write

@begin(display,use I)
goal(R1,R2,R3,R4,R5,R6)@Z(7)next(R1,R2),next(R1,R3),
@\next(R1,R6),next(R2,R3),next(R2,R6),next(R3,R6),
@\next(R2,R4),next(R3,R4),next(R1,R5),next(R2,R5),
@\next(R5,R6).
@end(display)

	This PROLOG program will run with only the most local
backtracking.  Namely, after @i(R1) has been chosen arbitrarily, several
values will have to be tried for each of the variables @i(R1, R2, R3, R6, R4,)
and @i(R5), but once a value has been found that is compatible with the previously
determined variables, it won't have to be changed again.

	The new PROLOG program is logically equivalent to the previous
program because it is just a rearrangement of the literals of a
conjunction.  However, the programmer has done the control.  The
interesting question is whether the reduction can be expressed in some way
that can be regarded as adding control to the original logic, i.e.,
without changing the original logic.

@begin(flushleft)
@B(4.  Kempe transformations)
@end(flushleft)

	Another idea of Kempe's can be used to strengthen the reduction
process, but regarding it as mere control added to the original logic program
seems even harder.

	The strengthened reduction procedure also removes countries with
four neighbors so that the reduced map contains only countries with five
or more neighbors.  The validity of this reduction depends on the following
Kempe proof
that if we have colored a partial map and want to add a country
with four neighbors, we can always revise the coloring of the partial map
to permit coloring the four neighbor country.

	If fewer than four colors have been used to color the neighbors,
there is no problem, so suppose that the four neighbors have been colored
with four different colors as shown in Figure 2.

@begin(figure)
@blankspace(8 lines)
@center(Figure 2)
@end(figure)

	Consider the set @i(S) of all countries that can be reached from the
blue country @i(A) on top of Figure 2 by a path going through only blue and
yellow countries. @i(S) is called the blue-yellow Kempe component of
country @i(A).  There are two cases.  Either it contains country @i(C) or not.  If
not, we recolor the partial map by reversing blue and yellow on all
countries in @i(S).  This still leaves the
partial map properly colored.
  Since
@i(S) does not contain  @i(C), @i(C) remains yellow
while @i(A) has become yellow.  This makes blue available to extend the
coloring to @i(X).

	In the other case, @i(S) contains
@i(C),  i.e, there is a chain of adjacent countries from @i(A) to @i(C) each of 
which is colored blue or yellow.  Then there cannot be a red-green chain from @i(B)
to @i(D) (by the topology of the plane or sphere), so that a red-green Kempe
transformation applied to the red-green Kempe component of @i(B) will make @i(B)
green, leaving red available to color @i(X).

	The fact that a blue-yellow path from @i(A) to @i(C) blocks a red-green
path from @i(B) to @i(D) is where we have used the fact that the map is on a plane
or sphere.

	This justifies eliminating countries with four neighbors in the
reduction process.  If we have colored a partial map and want to add a
country with four neighbors, we can do so, but we may have to modify the
previous coloring by means of a Kempe transformation.

	Our Improved coloring algorithm then reduces the map by repEatedly
dropping countriEq wiTh four or fewer neighbors, coLors the reduced map
exhaustively, and then colors the dropped countries in the reverse order
using Kempe transformations when necessary.

@begin(flushleft)
@B(5. Realizing the reduction algorithm by Control of the Pereira-Porto lodπSFR4∃↓K]⊂QMYkMQYKMPR~∀~(∪
e←4AiQJ↓a←S]PA←LAYSKnA=LAY←≥SFAaI←OeC5[S]N0AgkG
KggSYKYr~)eKIk
S]NAQQJA[¬`AEr↓a←giA←]S]≤AG←k9ieSKLAoSi AiQe∃JA←d↓MKoKHA]KS≥QE←eL~∃Sf↓C\AKaC[aY∀A←LA∧A[←e∀AOK]∃eCXA9←iS←8@ZAi!ChA←_ABA↓A3a←gQa←]C	YJ~∃YCeSC	YK:\AαAm¬eSCE1JAS\↓iQJA	←IrA=LABA
YCkg∀ASfAA←gia=]CEY∀ASLX4∃]↑A5CiiKHAQ←n↓iQJA=iQKd↓mCeS¬EYKf↓CeJA¬cgSO9KHXAQQKeJ↓SfAB↓mCYk∀AM←d4∃iQSLAmCe%CEYJ↓iQChαβ∂πW≡+EβπfaβS#*β∨?πg→β';6{3K'v9βS#∂!β[π⊗Kπ3(h+S=ε∪∃βO∂#'O≠L+⊃9↓∧≠3↔π⊗ceβπwIβC?∨#C?;∞∪3∃β6K'π⊗c∃β∂∞qβ∃πβ?OS∧{;↔⊂hSS=β&C∃β↔v!9↓αn{K↔?6+I1βW+OQβ∂→β'9π##∃βnAβ∂|c?K'v9βCK}∪3↔5bβC?O'β?;'v84+O}k∃β[∂∪'πf+Eβ7∂IβK↔n{[∃β.s?W∨Bβ∨?πg→β';6{3['v9β?SF+Iβ[∂∪'πf+EβOxh+S#∂!βS#/Iβ'9π#WK9ε∪↔∂?n)βC?∨#C?;∞∪3∃8hP4(&L1βS#-∪∃β←/∪∃β?vceβ?v)βOS∞;∃β?2βC?O'β?;↔n+;Q1¬;∃β∂␈+3⊃β⊗+∨πK h+C?∨#C?;.k↔;QεMβ¬ε≠πO∃ε{→βO,c↔∂SNs≥βSF)β≠'↔≠Qβ∨}1βSzβ∃β∂#S↔7π#↔⊃0hSS#∃πβ?OS∧{;πf)β[π⊗Kπ3/→β↔Ns∃βK.S↔∂S.!β≠?∩βO↔3.≠S'?rq↓α#|εv/6↑%Bπ&
≡0hW⎇}Vf&d}Bππ,↑f.wD
FF*∞<Vf.>M⊗}r
xbε
∞l↔⊗N≤-F*π
}7'ε⎇l⊗⊗fT	⊗rπMRπ≡\=vv Q.7&∞|Ubα¬MW⊗.m}&*b∞Mε*π
}7'ε⎇lVn.nDππ⊗|<W∂~∞=ε␈.LDε⊗*8m↑≠→5\λ_Y,m|Y#!,;↑(⎇x;≤d<Y(∞<;→8nL9λ→M}H_=∞L;<≥¬a"C"A~~→(∞
|⎇≤
⎇X8Z-M=≡(
|H_(∞l<Z8,-→(~.∀→>≤∞,<|q,D_↑(∀≤≠|nN≠{Y-\;]β!-→;;,∃Hλ⊃M}H→>≥<≠⊂∩K⊂:42H87yz≤7w0q~v4z<H5s⊂ ~mi~.H4yP2↑892y\rr⊂1≡FE:4→P37i≠zv0FBεE 1→stw∀→4yx6_|V:yYP$TFB -∀
i→⊂)U -∀∞Ti~↔
72|:
)→⊗)
∀P -
/∀P7→|:∀)T)~∀JU⊂εE⊂2w2∀→4yx6_|TFEβE'7z~qrP:~0z⊂7]y⊂8zZquP9→qwsw~z4wwλ7s⊂:~2P87\z87w_q4v4]<P7sλ 4mi
.P4yCE10yYr⊂7wλ:42P≤|vvr]9<W⊂λ+rP9X|P:4_z⊂;t_z2{2\⊂1wf≠y9P0\2P0y\tsw2Y⊂:7FB 4mi.P0w→⊂ 4mT→nV⊂_P1wv\0z4q≠2P1w[7y⊂1Xw⊂12H37zw→⊂37yλ 4mi
.W⊂⊂∃rFE2≠w∪z⊂~0{2P≥7P2w≥vry0]2P:4→P87y\tq62H0yytYw2vr[:9P:≠P 4mT→.P0[2⊂ 4Vi→nWβE P8≤7sy0[P;wz[2⊂40]2P:7H27P6[y2P;[y5P:[62yyH4z⊂0[9wP2~yqw{→y2r⊂≠y⊂;p\P:7v→⊂:40]εE1w[7y4w→P897X62vyH0y2P~w;0y~pw:⊂≥t2w⊂≥42P7_vryP≠s⊂:4→P1wv≠y9P0\2FE8→y6zz→r↔εEβE∧krH1pw⊂~vpst[2P9r]2y0vλ1wvq~w0z4[w9P7Y⊂897Yy0vvYy⊂0w→⊂1wv\:z2yβE2s3≠y:⊂4[⊂87y]87w4[3P;0\4pq6→yW⊂⊂∃rP0v≤2pr<H24yq]yyrrλ:42P_pyrP~wεE;Z4qt⊂≥42P8≤7sy0[vry⊂~4vyr[3⊂92Kwy22\2r⊂:~2P3wXv9P4[⊂:42H1v0z\rW⊂⊂∃42FE≠z42yλ2|:9→vrP4\P:40]⊂:42H()'f∪cP1w[x4v2\⊂0z:→vx:⊂≥7P89≠{2P8≠yz87[0q4v~z<FE≠2vvp\W⊂⊂)Zw1rP≤wvrP_pyryH7s⊂8≠yz87[0q4v~z<P6X|P22\2w2⊂≠w⊂9w[rP;0\4pq6→yFE0[92pr≡P40{~w3P;_v:ryK⊂0r2~z4ww_v⊂87\z87w→vrw:≤P1pwλ12P0Xqwvx≠4yt2Y⊂1<FB0P9zZz0q6→P4w:→y892]2y↔⊂λ)tw1YP6wy]⊂;0y~pq62\P4w⊂≠wyz⊂≤97sy_vyP0\2FE7≠z⊂87\z87w_q62Vλ4z⊂9YrvyP≥pyz2Y:v⊂:≠e the interpreter always
try for postponement.  Therefore, it is also possible for the user
to specify that the compiler and/or run-time system look for
postponable variables, perhaps by enclosing the clause or part of
it within which postponable variables may be expected within a
macro.  Thus the above program might be written

@begin (display,use I)
goal(R1,R2,R3,R4,R5,R6) @Z(7) postpone(next(R1,R2),next(R1,R3),...,etc.).
@end(display)

	The most powerful way of achieving postponement is for the
et mapsmer to use the full power of PROLOG to transform the body.
Alain Colmerauer wrote such a program for rewriting the
Pereira-Porto coloring program.  If the programmer can arbitrarily rewrite the
program, he may
change the logic as well as the control.  However, we can imagine
that a restricted set of re-arrangement operators are used that is
guaranteed to only affect the control.

	I was informed by Herve Gallaire that the system for specifying
control described in (Gallaire 1981) could not express the postponement
heuristic for the coloring problem, but that a small modification to the
system would make it possible.

@begin(flushleft)
@B(6.  Realizing the Kempe transformation algorithm)
@end(flushleft)

	Realizing the Kempe transformation algorithm as control of the
Pereira-Porto logic presents a more difficult challenge
to the designers of control languages for logic programming.  Of course,
the postponement part of the algorithm is the same as before; the
difficulty comes when it is necessary to color a country with four
differently colored neighbors.

	The first step is to
identify opposite neighbors of the four neighbor country.  This depends
not merely on the fact that the map is planar but on the actual imbedding
in the plane.  This information has been discarded when the map is
represented as a graph.  If the graph is described by giving foR each
country a list of its neighbors, the imbedding information can be including
by listing the neighbors in cyclic order - clockwise or counterclockwise.
Otherwise, it can be restored in general only with difficulty.  Figure 3
shows cases where this isn't trivial.  Of course, we can modify the
algorithm to try every pair of vepticeq to see if they are unconnected
by a path of their two colors.  The above argument shows that this is
guaranteed to succeeed but presumably at somewhat greater cost than iF
the cyclic order Is known.

@begin(figure)
@blankspace(5 lines)
@center(Figure 3)
@end(figure)

	Looking for a changable country is a pRocess of search wheReby
only certain values are allowed foR certain variables and goals That
become unsatisfied are re-satisbied by Changing only cErpain variables
in cartain ways.  A goOd control system for logic programs should
permi@PAiQJ↓Kqae∃ggS←8A←LAMkGPAMieCi∃KSKf8~∀
∀4∀n\AIKMKe∃]GKf4∀~∃↔∃[aJX↓α]∧\PbpndR@E∨8AiQJ↓OC←[∃ieSG¬XAae=EYKZ↓←LAM=kdAG=Y←efλ\@Aβ5Kd\A(\~∃≠¬iP\@H@Pbp\rRX@DrfZd@h\~∀4∃!Ke∃SeBX↓→kSf↓≠←]ShAC]H↓β]i←9S↑A!=ei↑@ brp`$A'KY∃GiSm∀A¬CG-ieCG-S]N~)MWdA1←OSF↓!e←OIC[fX↓	KaCIiC[K9i↑AI∀A∪]M=e[Ci%GBXA→CGkY⊃CIJA⊃JAπS∃]GSCL~∃JAQKG]←1←OSB0A+]SYKegS⊃C@∪∃∧s?[¬ε#∃α3O≠?¬b↓EaeJaα3'≡∪?¬1¬β?KS.;π04Ph*/?>3O/JaαK?⊗+KQ↓C	e]eJα3?∨L→β≠?⊂αCK?⊗c↔5α≡{3['v91α;⎇∪S!6F{3#πv!84(hR∂?3n+KπW-⊃1απf'9↓C	eaEJβC↔K≤{;π1∧≠?77.s'∂π&K?84Ph(4(hP4(